What is @netlify/open-api?
@netlify/open-api is an npm package that provides a client for interacting with the Netlify Open API. It allows developers to programmatically manage Netlify resources such as sites, deploys, forms, and more.
What are @netlify/open-api's main functionalities?
Create a new site
This feature allows you to create a new site on Netlify. You need to provide an access token and the site details.
const NetlifyAPI = require('@netlify/open-api');
const client = new NetlifyAPI('your-access-token');
async function createSite() {
const site = await client.createSite({
body: {
name: 'my-new-site'
}
});
console.log(site);
}
createSite();
List all sites
This feature allows you to list all the sites associated with your Netlify account.
const NetlifyAPI = require('@netlify/open-api');
const client = new NetlifyAPI('your-access-token');
async function listSites() {
const sites = await client.listSites();
console.log(sites);
}
listSites();
Create a new deploy
This feature allows you to create a new deploy for a specific site. You need to provide the site ID and the directory path of the site.
const NetlifyAPI = require('@netlify/open-api');
const client = new NetlifyAPI('your-access-token');
async function createDeploy(siteId, dir) {
const deploy = await client.createSiteDeploy({
site_id: siteId,
body: {
dir: dir
}
});
console.log(deploy);
}
createDeploy('your-site-id', 'path/to/your/site');
Other packages similar to @netlify/open-api
netlify
The 'netlify' npm package provides a CLI and programmatic interface for interacting with Netlify services. It offers similar functionalities to @netlify/open-api, such as site management and deploys, but also includes additional CLI commands for local development and configuration.
netlify-cli
The 'netlify-cli' package is a command-line tool for Netlify. It allows you to deploy sites, manage DNS records, and configure site settings from the terminal. While it overlaps with @netlify/open-api in terms of site and deploy management, it is more focused on providing a comprehensive CLI experience.
netlify-lambda
The 'netlify-lambda' package is a tool for building and deploying serverless functions to Netlify. It is more specialized compared to @netlify/open-api, focusing on the development and deployment of Lambda functions rather than general site management.
This repository contains Netlify's API definition in the Open API format, formerly known as Swagger.
It's still a work in progress and we welcome feedback and contributions.
Usage
The swagger.yml
file is the master copy of the Open API 2.0 definition. Additional context on using the API can be found on our docs site.
The spec is published and versioned for various ecosystems:
SwaggerUI (Web UI)
You can view the definition using Swagger UI by visiting open-api.netlify.com which provides limited interaction with the API from the browser.
Go Client
$ go get github.com/netlify/open-api/...
See CONTRIBUTING.md for details on how this client is developed and generated.
JS Client
We have a fully featured JS/Node.js client that implements some of the same 'porcelain' methods that the go client does in addition to the open-api methods.
See github.com/netlify/build/tree/main/packages/js-client for more details.
npm module
You can also consume the swagger spec as an npm module:
$ npm install @netlify/open-api
# or
$ yarn add @netlify/open-api
import spec from '@netlify/open-api'
The module also ships a copy of the original yml
spec file at @netlify/open-api/js/dist/swagger.yml
. You can use these with generic swagger/open-api clients:
swagger-js
Swagger's JS client can dynamically create a client from a spec either from a URL or spec object.
See the swagger-js client:
Usage
<script src='browser/swagger-client.js' type='text/javascript'></script>
<script>
var swaggerClient = new SwaggerClient('https://open-api.netlify.com/swagger.json');
</script>
Contributing
See CONTRIBUTING.md for more info on how to make contributions to this project.
License
MIT. See LICENSE for more details.